package com.ict.web.vo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ict.common.annotation.Excel;
import com.ict.web.controller.file.domain.YzqFile;
import com.ict.web.domain.CloudResourceRequirement;
import com.ict.web.domain.GovernmentDataResources;
import com.ict.web.domain.IotDeviceInfo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.util.List;


/**
 * 方案申报出参对象 yzq_scheme_declaration
 *
 * @author ruoyi
 * @date 2022-03-07
 */
@Data
public class SchemeDeclarationVo {
    /** 方案申报id */
    @ApiModelProperty(value = "方案申报id")
    @TableId(value = "programme_id",type = IdType.INPUT)
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long programmeId;

    @ApiModelProperty(value = "评审任务id")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long reviewTaskId;

    /** 设计单位 */
    @ApiModelProperty(value = "设计单位")
    @Excel(name = "设计单位")
    private String designUnit;

    /** 可行性研究报告 */
    @ApiModelProperty(value = "可行性研究报告")
    @Excel(name = "可行性研究报告")
    private String researchReport;

    /** 可行性研究报告文件 */
    @ApiModelProperty(value = "可行性研究报告文件")
    @Excel(name = "可行性研究报告文件")
    private YzqFile researchReportFile;

    /** 概算方案 */
    @ApiModelProperty(value = "概算方案")
    @Excel(name = "概算方案")
    private String budgetProposal;

    /** 概算方案文件 */
    @ApiModelProperty(value = "概算方案文件")
    @Excel(name = "概算方案文件")
    private YzqFile budgetProposalFile;

    /** 初设方案 */
    @ApiModelProperty(value = "初设方案")
    @Excel(name = "初设方案")
    private String preliminaryDesignScheme;

    /** 初设方案文件 */
    @ApiModelProperty(value = "初设方案文件")
    @Excel(name = "初设方案文件")
    private YzqFile preliminaryDesignSchemeFile;

    /** 预算方案 */
    @ApiModelProperty(value = "预算方案")
    @Excel(name = "预算方案")
    private String budgetProgramme;

    /** 预算方案文件 */
    @ApiModelProperty(value = "预算方案文件")
    @Excel(name = "预算方案文件")
    private YzqFile budgetProgrammeFile;

    /** 云资源需求申请表 */
    @ApiModelProperty(value = "云资源需求申请表")
    @Excel(name = "云资源需求申请表")
    private String cloudResourceApplication;

    /** 云资源需求申请表 */
    @ApiModelProperty(value = "云资源需求申请表")
    @Excel(name = "云资源需求申请表")
    private YzqFile cloudResourceApplicationFile;

    /** 系统架构简述 */
    @ApiModelProperty(value = "系统架构简述")
    @Excel(name = "系统架构简述")
    private String systemArchitecture;

    @ApiModelProperty(value = "系统信息列表")
    private List<SystemInfoDetailVo> systemInfoList;

    @ApiModelProperty(value = "政务数据资源目录清单")
    private List<GovernmentDataResources> governmentDataResourcesAddDtoList;

    @ApiModelProperty(value = "云资源需求列表")
    private List<CloudResourceRequirement> insertCloudResourceDtoList;

    @ApiModelProperty(value = "物联设备信息")
    private List<IotDeviceInfo> insertIotDeviceInfoDtosList;

    /** 评估方法 */
    @ApiModelProperty(value = "评估方法")
    @NotBlank(message = "评估方法不能为空")
    private String assessmentMethod;

    /** 项目代码 */
    @ApiModelProperty(value = "项目代码")
    @Size(max = 32, message = "项目代码长度不能超过32")
    private String projectCode;
}
